def copy_dict_hierarchy(dictionary, fill_value=None):
    """
    Copies the a dictionary, that may have multiple embedded dictionaries. The values
    of the dictionary are replaced with the provided fill value.
    :param dictionary: dict, which structure will be copied.
    :param fill_value: the value that will be used to fill the copied dictionary.
    :return: dict, the copied dictionary.
    """
    new_dict = dict(zip(dictionary.keys(), [fill_value] * len(dictionary.keys())))
    for key in [k for k in dictionary.keys() if isinstance(dictionary[k], dict)]:
        new_dict[key] = copy_dict_hierarchy(dictionary[key])

    return new_dict