avoid subset merges

by making a list of pairs_todo, thanks to some simple lookups on the
c_matrix