Fix #1421 by decomposing profiles into collections of atomic profiles.
Decompose `with-profile` args not containing +/-.
Merge branch 'decompose-profiles'