find-rule uses single traversal def