It is possible _BUT_ it will slow the bot down comparing every word of every sentence to a list even as short as ten words long.
I've been futzing with it (see SVN BeBot). As long as your filter list isn't huge performance isn't bad. The pirate and Swedish Chef translates are a bigger performance hit.

As for censoring, you can do it two ways. The intended way is to build your own string list. The other way is using the censor output filter (via funfilters.) Censor has it's own word list that has been encoded with rot13 (cause swearing in code isn't cool.) The censor funfilter is a port of a perl filter.
I'll think I will remove the censor filter however. It's not "fun," and I don't want to dictate what should and should not be censored. I put it in there as it was just an easy perl to php example.

As for the request of the original poster, the answer is maybe. The bot is only able to censor what the bot is outputing. It can't censor what others are saying via private group, tell, guild chat. If the issue is people are swearing like a sailor in the private group chat and the bot is relaying it to guild chat, then yes the output to guild chat could be run through the filter system.
Currently, most modules don't support the filter module. Only modules using BeBot's send_output function work. This is by design as there are plenty of situations where you want to do send_tell, send_pgmsg, or send_gc without any additional filtering.
The reccomendation to module coders will be if the bot is outputing data contributed by users (Logon messages, quotes, etc.) output should go through send_output. If you are sending text windows, menus, etc. you should use the send_tell, send_pgmsg, send_gc functions...
Clear as mud?
