If a set of equations $E\!\cup \!Ax$ is such that $E$ is confluent, terminating, and coherent modulo $Ax$, narrowing with $E$ modulo $Ax$ provides a complete $E\!\cup \!Ax$-unification algorithm. However, except for the hopelessly inefficient case of full narrowing, nothing seems to be known about effective narrowing strategies in the general modulo case beyond the quite depressing observation that basic narrowing is \emph{incomplete} modulo $AC$. In this work we propose an effective strategy based on the idea of the $E\!\cup \!Ax$-variants of a term that we call \emph{folding variant narrowing}. This strategy is \emph{complete}, both for computing $E\!\cup \!Ax$-unifiers and for computing a minimal complete set of variants for any input term. And it is \emph{optimally variant terminating} in the sense of terminating for an input term $t$ iff $t$ has a finite, complete set of variants. The applications of folding variant narrowing go beyond providing a complete $E\!\cup \!Ax$-unification algorithm: computing the $E\!\cup \!Ax$-variants of a term may be just as important as computing $E\!\cup \!Ax$-unifiers in recent applications of folding variant narrowing such as termination methods modulo axioms, and checking confluence and coherence of rules modulo axioms.