source = $source; } public function matches( Match_Target $target, $groups ) { foreach ( $groups as $group ) { try { $matchable = $this->source->find( $group ); } catch ( Matchable_Not_Found $e ) { continue; } if ( $matchable->matches( $target ) ) { return true; } } return false; } }