deep merge hash