Fixed bug and added more special cases

Fixed bug where all words with a dash were being treated as predicates.
Now a match with some regex is used to do the right thing.

Also added some more special cases.