def METHOD_NAME(target, new):
    """Recursively update one dictionary using another.
    None values will delete their keys.
    """
    for k, v in new.items():
        if isinstance(v, dict):
            if k not in target:
                target[k] = {}
            METHOD_NAME(target[k], v)
            if not target[k]:
                # Prune empty subdicts
                del target[k]
        elif v is None:
            target.pop(k, None)
        else:
            target[k] = v