public static Builder builder() {
        return new Builder();
    }
@Test
    void shouldMatchGivenIncludeAndExcludeExpressions() {
        // Given
        List<Path> paths = List.of(
            // When
            Path.of("/a/b/c/1"),
            Path.of("/a/2"),
            Path.of("/b/c/d/3"),
            Path.of("/b/d/4"),
            Path.of("/c/5")
        );
        Predicate<Path> predicate = PathMatcherPredicate.builder()
            .includes(List.of("/a/**", "c/**"))
            .excludes(List.of("**/2"))
            .build();

        // When
        List<Path> filtered = paths.stream().filter(predicate).toList();

        // Then
        assertThat(filtered, containsInAnyOrder(
            is(Path.of("/a/b/c/1")),
            is(Path.of("/b/c/d/3")),
            is(Path.of("/c/5"))
        ));

    }