pattern-based