Pattern Solver