code: private static DecoratorMap group_map_(Map<String, PathMatcher> paths) {
          if (paths.isEmpty()) return concat();
  
          return new DecoratorMap() {
              @Override
              public Stream<Consumer<MutableContext>> map(Stream<Consumer<MutableContext>> in, Context ctx) {
                  final Map<String, TimeSeriesValueSet> pathMapping = paths.entrySet().stream()
                          .collect(Collectors.toMap(Map.Entry::getKey,
                                  pmEntry -> {
                                      return ctx.getTSData()
                                      .getCurrentCollection()
                                      .get(p -> pmEntry.getValue().match(p.getPath()), x -> true);
                                  }));
  
                  for (final Map.Entry<String, TimeSeriesValueSet> pm
                               : pathMapping.entrySet()) {
                      final String identifier = pm.getKey();
                      final List<Consumer<MutableContext>> applications = pm.getValue().stream()
                              .map(group -> {
                                  Consumer<MutableContext> application = (nestedCtx) -> nestedCtx.putGroupAliasByName(identifier, group::getGroup);
                                  return application;
                              })
                              .collect(Collectors.toList());
  
                      in = in.flatMap(inApplication -> applications.stream().map(inApplication::andThen));
                  }
                  return in;
              }
          };
      }
docs: Create a decorator map from a mapping of GroupMatchers.