add ContainerUtil.merge and related methods; add tests