If HTML::Tidy is unavailable, we now have code for using the (less customizable) HTML::Tidy::libXML module as a tidying engine, if we can find that. This will ensure that, if nothing else, tags get closed.
Changed signature of URI callback slightly; added some tests Added HTML::Laundry::Rules::Default as an alias for HTML::Laundry::Rules
… to Rules xml:lang was inadvertently left out of my acceptable attributes list; it's now been added in and the tests updated. Additionally, I've added a finalize_initialization method to Rules that allows the ruleset to directly modify the HTML::Laundry item (for instance to add a non-HTML element, ensuring Tidy lets it through).