docs: def map_query(self, variables=None, evidence=None, elimination_order=None):
          """
          Computes the MAP Query over the variables given the evidence.
  
          Note: When multiple variables are passed, it returns the map_query for each
          of them individually.
  
          Parameters
          ----------
          variables: list
              list of variables over which we want to compute the max-marginal.
          evidence: dict
              a dict key, value pair as {var: state_of_var_observed}
              None if no evidence
          elimination_order: list
              order of variable eliminations (if nothing is provided) order is
              computed automatically
  
          Examples
          --------
          >>> from pgmpy.inference import VariableElimination
          >>> from pgmpy.models import BayesianModel
          >>> import numpy as np
          >>> import pandas as pd
          >>> values = pd.DataFrame(np.random.randint(low=0, high=2, size=(1000, 5)),
          ...                       columns=['A', 'B', 'C', 'D', 'E'])
          >>> model = BayesianModel([('A', 'B'), ('C', 'B'), ('C', 'D'), ('B', 'E')])
          >>> model.fit(values)
          >>> inference = VariableElimination(model)
          >>> phi_query = inference.map_query(['A', 'B'])
          """
          # TODO:Check the note in docstring. Change that behavior to return the joint MAP
          final_distribution = self._variable_elimination(variables, 'marginalize',
                                                          evidence=evidence,
                                                          elimination_order=elimination_order)
          argmax = np.argmax(final_distribution.values)
          assignment = final_distribution.assignment([argmax])[0]
  
          map_query_results = {}
          for var_assignment in assignment:
              var, value = var_assignment
              map_query_results[var] = value
  
          if not variables:
              return map_query_results
          else:
              return_dict = {}
              for var in variables:
                  return_dict[var] = map_query_results[var]
              return return_dict