def map_coloring_csp():
    """

    Example:
    >>> result = map_coloring_csp()
    >>> print(result)

    Code:
    -----
    def map_coloring_csp():
        variables = ['WA', 'NT', 'SA', 'Q', 'NSW', 'V', 'T']


        domains = {}
        for var in variables:
            domains[var] = ['red', 'green', 'blue']


        neighbors = {
            'WA': ['NT', 'SA'],
            'NT': ['WA', 'Q', 'SA'],
            'SA': ['WA', 'NT', 'Q', 'NSW', 'V'],
            'Q': ['NT', 'SA', 'NSW'],
            'NSW': ['Q', 'SA', 'V'],
            'V': ['SA', 'NSW'],
            'T': []
        }


        def backtracking_search(assignment):
            if len(assignment) == len(variables):
                return assignment

            var = select_unassigned_variable(assignment)
            for value in order_domain_values(var, assignment):
                if is_consistent(var, value, assignment):
                    assignment[var] = value
                    result = backtracking_search(assignment)
                    if result is not None:
                        return result
                    assignment.pop(var)

            return None


        def select_unassigned_variable(assignment):
            for var in variables:
                if var not in assignment:
                    return var


        def order_domain_values(var, assignment):
            return domains[var]

        def is_consistent(var, value, assignment):
            for neighbor in neighbors[var]:
                if neighbor in assignment and assignment[neighbor] == value:
                    return False
            return True

        assignment = {}
        result = backtracking_search(assignment)

        return result
    """


    variables = ['WA', 'NT', 'SA', 'Q', 'NSW', 'V', 'T']


    domains = {}
    for var in variables:
        domains[var] = ['red', 'green', 'blue']


    neighbors = {
        'WA': ['NT', 'SA'],
        'NT': ['WA', 'Q', 'SA'],
        'SA': ['WA', 'NT', 'Q', 'NSW', 'V'],
        'Q': ['NT', 'SA', 'NSW'],
        'NSW': ['Q', 'SA', 'V'],
        'V': ['SA', 'NSW'],
        'T': []
    }


    def backtracking_search(assignment):
        if len(assignment) == len(variables):
            return assignment

        var = select_unassigned_variable(assignment)
        for value in order_domain_values(var, assignment):
            if is_consistent(var, value, assignment):
                assignment[var] = value
                result = backtracking_search(assignment)
                if result is not None:
                    return result
                assignment.pop(var)

        return None


    def select_unassigned_variable(assignment):
        for var in variables:
            if var not in assignment:
                return var


    def order_domain_values(var, assignment):
        return domains[var]

    def is_consistent(var, value, assignment):
        for neighbor in neighbors[var]:
            if neighbor in assignment and assignment[neighbor] == value:
                return False
        return True

    assignment = {}
    result = backtracking_search(assignment)

    return result

