This document introduces Phorms, a library for pattern matching in Pharo. Pattern matching was originally introduced in functional programming to define functions inductively and is now used in languages like Newspeak and Scala to decompose object data. The existing rewrite engine in Pharo uses abstract syntax trees for pattern matching but has limitations like being confusing, non-composable patterns, and lacking user-friendly debugging. Phorms addresses these by representing patterns as objects, allowing composition and conversion of patterns. It provides examples of matching and rewriting code using Phorms patterns.