recursive weight list merging