move hash extension logic to Vertebrae.deepExtend