code: public <V> TreeNode<V> expand(
  		final Map<String, Tree<V, ?>> variables,
  		final Function<? super String, ? extends V> mapper
  	) {
  		return expand(_pattern, variables, mapper);
  	}
docs: Expands {@code this} pattern with the given variable mapping and using
  the given value {@code mapper}. Missing {@code variables} mapping are
  removed from the expanded tree.
  
  @param variables the variables to use for expanding {@code this} pattern
  @param mapper the string value mapper
  @param <V> the tree node type
  @return the expanded tree pattern
  @throws NullPointerException if one of the arguments is {@code null}
  @throws IllegalArgumentException if not all needed variables are part
  of the {@code variables} map