code: @PublicAPI(usage = ACCESS)
      public static Transformer matching(String packageIdentifier) {
          PackageMatchingSliceIdentifier sliceIdentifier = new PackageMatchingSliceIdentifier(packageIdentifier);
          String description = "slices matching " + sliceIdentifier.getDescription();
          return new Transformer(sliceIdentifier, description);
      }
docs: Supports partitioning a set of {@link JavaClasses} into different slices by matching the supplied
  package identifier. For identifier syntax, see {@link PackageMatcher}.<br>
  The slicing is done according to capturing groups (thus if none are contained in the identifier, no more than
  a single slice will be the result). For example
  <p>
  Suppose there are three classes:<br><br>
  {@code com.example.slice.one.SomeClass}<br>
  {@code com.example.slice.one.AnotherClass}<br>
  {@code com.example.slice.two.YetAnotherClass}<br><br>
  If slices are created by specifying<br><br>
  {@code Slices.of(classes).byMatching("..slice.(*)..")}<br><br>
  then the result will be two slices, the slice where the capturing group is 'one' and the slice where the
  capturing group is 'two'.
  </p>
  
  @param packageIdentifier The identifier to match against
  @return Slices partitioned according the supplied package identifier