Is there part of this tree which satisfies predicate p'?
Find all subtrees matching predicate p'
Returns optionally first tree (in a preorder traversal) which satisfies predicate p',
or None if none exists.
Apply f' to each subtree
If 'pf' is defined for a given subtree, call super.
If 'pf' is defined for a given subtree, call super.traverse(pf(tree)), otherwise super.traverse(tree).