code: public List<Stepdoc> findMatching(String stepAsText, List<CandidateSteps> candidateSteps) {
          List<Stepdoc> matching = new ArrayList<>();
          for (StepCandidate candidate : collectCandidates(candidateSteps)) {
              if (candidate.matches(stepAsText)) {
                  matching.add(new Stepdoc(candidate));
              }
          }
          return matching;
      }
docs: Finds matching steps, represented as {@link Stepdoc}s, for a given
  textual step and a list of {@link CandidateSteps}.
  
  @param stepAsText
  the textual step
  @param candidateSteps
  the List of CandidateSteps
  @return The list of Stepdocs, one for each matched {@link StepCandidate}.