docs: @Restricted(Beta.class)
      public @Nonnull Collection<String> list(@Nonnull String includes, @CheckForNull String excludes, boolean useDefaultExcludes) throws IOException {
          Collection<String> r = run(new CollectFiles(this));
          List<TokenizedPattern> includePatterns = patterns(includes);
          List<TokenizedPattern> excludePatterns = patterns(excludes);
          if (useDefaultExcludes) {
              for (String patt : DirectoryScanner.getDefaultExcludes()) {
                  excludePatterns.add(new TokenizedPattern(patt.replace('/', File.separatorChar)));
              }
          }
          return r.stream().filter(p -> {
              TokenizedPath path = new TokenizedPath(p.replace('/', File.separatorChar));
              return includePatterns.stream().anyMatch(patt -> patt.matchPath(path, true)) && excludePatterns.stream().noneMatch(patt -> patt.matchPath(path, true));
          }).collect(Collectors.toSet());
      }