def METHOD_NAME(self, dest, source, override):
    """
    Merge in place dest dictionary for values in source in recursive way.
    If override is set to True, override instead of merging.
    """
    for k, v in source.items():
        vdest = dest.get(k)
        if isinstance(vdest, dict) and isinstance(v, dict):
            self.METHOD_NAME(vdest, v, override)
        else:
            if isinstance(vdest, list) and not override:
                for item in v:
                    if item not in vdest:
                        vdest.append(item)
            else:
                dest[k] = v