def METHOD_NAME(filename):
    """
    Generic function for parsing dnsmasq files including includes.
    """
    fileopts = {}
    if not os.path.isfile(filename):
        raise CommandExecutionError("Error: No such file '{}'".format(filename))
    with salt.utils.files.fopen(filename, "r") as fp_:
        for line in fp_:
            line = salt.utils.stringutils.to_unicode(line)
            if not line.strip():
                continue
            if line.startswith("#"):
                continue
            if "=" in line:
                comps = line.split("=")
                if comps[0] in fileopts:
                    if isinstance(fileopts[comps[0]], str):
                        temp = fileopts[comps[0]]
                        fileopts[comps[0]] = [temp]
                    fileopts[comps[0]].append(comps[1].strip())
                else:
                    fileopts[comps[0]] = comps[1].strip()
            else:
                if "unparsed" not in fileopts:
                    fileopts["unparsed"] = []
                fileopts["unparsed"].append(line)
    return fileopts