Oragnize code and backfill tests for HashNode#find_all

Also add back add_rule to Engine for now.