public Optional<TreeMatchResult<V>> match(final Tree<V, ?> tree) {
		final Map<Var<V>, Tree<V, ?>> vars = new HashMap<>();
		final boolean matches = matches(tree, _pattern, vars);

		return matches
			? Optional.of(TreeMatchResult.of(tree, vars))
			: Optional.empty();
	}
Try to match the given {@code tree} against {@code this} pattern.

@param tree the tree to be matched
@return the match result, or {@link Optional#empty()} if the given
        {@code tree} doesn't match
@throws NullPointerException if the arguments is {@code null}
jenetics.ext/src/main/java/io/jenetics/ext/rewriting/TreePattern.java