Sowas ist eigentlich unnötig - ein einfaches
Code:
s/\b(\w+)-([a-z]\w*)\b/\1\2/g
würde das Problem beheben.
Die wenigen Fälle die dabei durch den Rost fallen (wie rot-braun -> rotbraun) stören wesentlich weniger, als hässliche Bindestriche, wo keine sein sollten.