def _convert_to_dict(data):
    """
    Convert `data` to dictionary.

    Tries to get sense in multidimensional arrays.

    Args:
        data: List/dict/tuple of variable dimension.

    Returns:
        dict: If the data can be converted to dictionary.

    Raises:
        MetaParsingException: When the data are unconvertible to dict.
    """
    if isinstance(data, dict):
        return data

    if isinstance(data, list) or isinstance(data, tuple):
        if _all_correct_list(data):
            return dict(data)
        else:
            data = zip(data[::2], data[1::2])
            return dict(data)
    else:
        raise MetaParsingException(
            "Can't decode provided metadata - unknown structure."
        )