- remove the duplicate detection logic from CompositeParser
  (this solves the strange infinite loop caused by the dart grammar)
- cleanup some of the matching code (while trying 
  to hunt down the dart remove-duplicate bug)