Restrict hyphens to word characters
This updates the hyphenation code, restricting hyphens to occur only between word characters (currently, hyphens are being inserted before dashes and other non-word characters). I added some conditionals because I wasn't sure if all the variables would always exist.
I also updated the hyphens spec accordingly.