Advanced Pattern Matching, Part 2