public Collection<Node> matchingScenariosAndExamples(final Feature feature){
  final List<ScenarioDefinition> allScenarios=feature.getScenarioDefinitions();
  final List<Node> matchingScenariosAndExamples=new LinkedList<Node>();
  for (  final ScenarioDefinition scenario : allScenarios) {
    final Set<Tag> allTagsForScenario=new HashSet<Tag>(scenario.getTags());
    allTagsForScenario.addAll(feature.getTags());
    if (scenario instanceof ScenarioOutline) {
      matchingScenariosAndExamples.addAll(matchingExamples((ScenarioOutline)scenario,allTagsForScenario));
    }
 else {
      if (matches(allTagsForScenario)) {
        matchingScenariosAndExamples.add(scenario);
      }
    }
  }
  return matchingScenariosAndExamples;
}

public Collection < Node > matchingScenariosAndExamples ( final Feature feature ) { final List < ScenarioDefinition > allScenarios = feature . getScenarioDefinitions ( ) ; final List < Node > matchingScenariosAndExamples = new LinkedList < Node > ( ) ; for ( final ScenarioDefinition scenario : allScenarios ) { final Set < Tag > allTagsForScenario = new HashSet < Tag > ( scenario . getTags ( ) ) ; allTagsForScenario . addAll ( feature . getTags ( ) ) ; if ( scenario instanceof ScenarioOutline ) { matchingScenariosAndExamples . addAll ( matchingExamples ( ( ScenarioOutline ) scenario , allTagsForScenario ) ) ; } else { if ( matches ( allTagsForScenario ) ) { matchingScenariosAndExamples . add ( scenario ) ; } } } return matchingScenariosAndExamples ; }
find the scenarios that match the required tags in the feature .
