Use Rules Iteratively
While ReplaceAll (/.) applies rules to an expression only once, ReplaceRepeated (//.) will continue to do so until the expression no longer changes.
You can also use ReplaceRepeated to undo "currying" of function arguments:
While ReplaceAll (/.) applies rules to an expression only once, ReplaceRepeated (//.) will continue to do so until the expression no longer changes.