Find the first element that satisfying the predicate traversing up through its ancestors.
Find the first element that satisfying the predicate traversing down through its ancestors.
See Implementation