code: @SafeVarargs
      public static <T, R> Function<T, List<R>> allMatches(Clause<T, R>... clauses) {
          return new AllMatchesStrategy<>(Arrays.asList(clauses));
      }
docs: Given some {@code Clause}s returns a function that forwards the results of all
  clauses which condition is true, of an empty {@code List} if no clause
  matches the condition.