implemented ListMatcher and added the concept of a partial match to Matcher and MatchResult