gen-datareader: lump branches which have only one leaf, together into DataReader def