def METHOD_NAME(self):
    """
    RegionSimplifier performs the following simplifications:
    - Remove redundant Gotos
    - Remove redundant If/If-else statements
    """
    r = self.region
    # Remove empty nodes
    r = self._remove_empty_nodes(r)
    # Remove unnecessary Jump statements
    r = self._simplify_gotos(r)
    # Remove unnecessary jump or conditional jump statements if they jump to the successor right afterwards
    r = self._simplify_ifs(r)
    # Remove labels that are not referenced by anything
    r = self._simplify_labels(r)
    # Remove empty nodes again
    r = self._remove_empty_nodes(r)
    if self.variable_kb is not None:
        # Fold expressions that are only used once into their use sites
        r = self._fold_oneuse_expressions(r)
        r = self._remove_empty_nodes(r)
    if self._simplify_switches:
        # Simplify switch expressions
        r = self._simplify_switch_expressions(r)
        # Simplify switch clusters
        r = self._simplify_switch_clusters(r)
        # Again, remove labels that are not referenced by anything
        r = self._simplify_labels(r)
    # Remove empty nodes
    r = self._remove_empty_nodes(r)
    # Remove unnecessary else branches if the if branch will always return
    r = self._simplify_ifelses(r)
    #
    r = self._simplify_cascading_ifs(r)
    #
    r = self._simplify_loops(r)
    # Remove empty nodes again
    r = self._remove_empty_nodes(r)
    # Find nested if-else constructs and convert them into CascadingIfs
    r = self._transform_to_cascading_ifs(r)
    self.result = r