changed terminology in Path class: element -> part
added NamePattern
added NameMatcher