public <V> TreeNode<V> expand(
		final Map<String, Tree<V, ?>> variables,
		final Function<? super String, ? extends V> mapper
	) {
		return expand(_pattern, variables, mapper);
	}
public < V > TreeNode < V > expand ( final Map < String , Tree < V , ? > > variables , final Function < ? super String , ? extends V > mapper ) { return expand ( _pattern , variables , mapper ) ; }
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