title: Check that Python dicts have same shape and keys
body: <p>For single layer dicts like <code>x = {'a': 1, 'b': 2}</code> the problem is easy and answered on SO (<a href="https://stackoverflow.com/questions/3210832/pythonic-way-to-check-if-two-dictionaries-have-the-identical-set-of-keys">Pythonic way to check if two dictionaries have the identical set of keys?</a>) but what about nested dicts?</p>
  
  <p>For example, <code>y = {'a': {'c': 3}, 'b': {'d': 4}}</code> has keys <code>'a'</code> and <code>'b'</code> but I want to compare its shape to another nested dict structure like <code>z = {'a': {'c': 5}, 'b': {'d': 6}}</code> which has the same shape and keys (different values is fine) as <code>y</code>. <code>w = {'a': {'c': 3}, 'b': {'e': 4}}</code> would have keys <code>'a'</code> and <code>'b'</code> but on the next layer in it differs from <code>y</code> because <code>w['b']</code> has key <code>'e'</code> while <code>y['b']</code> has key <code>'d'</code>.</p>
  
  <p>Want a short/simple function of two arguments <code>dict_1</code> and <code>dict_2</code> and return <code>True</code> if they have same shape and key as described above, and <code>False</code> otherwise.</p>