Managing shouldVisit() with Predicates