- changed logic of IteratorDescendants to become IteratorFlatten such that
  it now longer iterates on children, but previous result, still
  returning all descendants though, plus root nodes too
- keyword "pf.put" replaces "pf.add" and "pf.set"
- helper methods in Match class
- plus other refactorings