public static boolean matches(
      final String val,
      final String pattern
  ) {
    return matches(val, pattern, Optional.empty());
  }
@Test
  public void shouldMatch() {
    // Then:
    if (escape == null) {
      assertThat(LikeEvaluator.matches(val, pattern), not(name.contains("[X]")));
    } else {
      assertThat(LikeEvaluator.matches(val, pattern, escape), not(name.contains("[X]")));
    }
  }