Seems like you should throw a very loud error if a move in the set is no longer valid. Just ignoring the bad command seems like it'd be a recipe for disaster if we start to rely on this function. Bonus points for checking that moves are commutative and ok to run in parallel (probably as an option).