It does simplify the logic of both redo.py and redo-ifchange.py, I suppose.
And move test scripts into t/ subdir to keep things clean. As part of that, make sure redo adds itself to the PATH on startup so that subscripts can find it.