Args:
        value: Value to turn into a dict
        prefix (str | unicode | None): Optional prefix for keys (if provided, `prefix.` is added to all keys)
        separators (str | unicode): 2 chars: 1st is assignment separator, 2nd is key-value pair separator

    Returns:
        (dict): Parse key/values

def to_dict(value, prefix=None, separators="=,"):
    """
    Args:
        value: Value to turn into a dict
        prefix (str | unicode | None): Optional prefix for keys (if provided, `prefix.` is added to all keys)
        separators (str | unicode): 2 chars: 1st is assignment separator, 2nd is key-value pair separator

    Returns:
        (dict): Parse key/values
    """
    if not value or isinstance(value, dict):
        return value or {}

    result = {}
    for val in flattened(value, split=(separators[1], SANITIZED)):
        if not val:
            continue

        if hasattr(val, "partition"):
            k, _, v = val.partition(separators[0])
            k = k.strip()
            if k:
                v = v.strip()
                if prefix and not k.startswith(prefix):
                    k = "%s.%s" % (prefix, k)
                result[k] = v

    return result