  A celebrated theorem of Pippenger, and Frankl and R\"odl states that every
almost-regular, uniform hypergraph $\mathcal{H}$ with small maximum codegree
has an almost-perfect matching. We extend this result by obtaining a
``conflict-free'' matching, where conflicts are encoded via a collection
$\mathcal{C}$ of subsets $C\subseteq E(\mathcal{H})$. We say that a matching
$\mathcal{M}\subseteq E(\mathcal{H})$ is conflict-free if $\mathcal{M}$ does
not contain an element of $\mathcal{C}$ as a subset. Under natural assumptions
on $\mathcal{C}$, we prove that $\mathcal{H}$ has a conflict-free,
almost-perfect matching. This has many applications, one of which yields new
asymptotic results for so-called ``high-girth'' Steiner systems. Our main tool
is a random greedy algorithm which we call the ``conflict-free matching
process''.
