utf8 encode anything before trying to make JSON out of it
support optionally specifying message format and whether to notify people in hipchat
ignore vim undo files
"use Data::Printer" instead of "require Data::Printer"

I don't know why require was used, but for whatever reason it has been causing
the following error to appear in my syslog:

>Can't locate locale.pm:   Permission denied at /usr/local/d8o/hase/current/perl/local/lib/perl5/Sort/Naturally.pm line 10.#012BEGIN failed--compilation aborted at /usr/local/d8o/hase/current/perl/local/lib/perl5/Sort/Naturally.pm line 10.#012Compilation failed in require at /usr/local/d8o/hase/current/perl/local/lib/perl5/Data/Printer.pm line 6.#012BEGIN failed--compilation aborted at /usr/local/d8o/hase/current/perl/local/lib/perl5/Data/Printer.pm line 6.#012Compilation failed in require at /usr/local/d8o/hase/current/perl/local/lib/perl5/Daemonise.pm line 213.

...and preventing my frontend from loading (yes iwmn-base was broken because
of hase)

Changing this to "use Data::Printer" and getting rid of the extra call to p()
using the reference stopped it and I can load stuff again.

In my opinion, if you want to include a module at runtime use a "mixin" class.
Mouse has good support for this kind of thing.