Multi-Pattern Matching Algorithms