Rewrite smart-hyphen hook as pre-convert, more tests, close #7