def METHOD_NAME(self, button, skip_first_screenshot=True):
    """
    Args:
        button (Button): A button in navigational order page.
        skip_first_screenshot (bool):
    Returns:
        bool: If success
    Pages:
        in: is_in_map
        out: is_in_map
    """
    logger.hr(button)
    self.order_enter()
    missing_timer = Timer(1, count=3).start()
    confirm_timer = Timer(1.2, count=4)
    assume_zone = self.name_to_zone(11)
    while 1:
        if skip_first_screenshot:
            skip_first_screenshot = False
        else:
            self.device.screenshot()
        # End
        if self.is_in_map():
            if confirm_timer.reached():
                return True
        else:
            confirm_timer.reset()
        if self.is_in_map_order() and not self.appear(button):
            if missing_timer.reached():
                logger.info(f'Map order not available: {button}')
                self.order_quit()
                return False
        else:
            missing_timer.reset()
        if self.appear_then_click(button, interval=3):
            continue
        if self.handle_popup_confirm(button.name):
            continue
        if self.handle_map_event():
            continue
        if self.handle_map_cat_attack():
            continue
        if self.handle_action_point(zone=assume_zone, pinned='OBSCURE'):
            # After clicking action point cancel, Azur Lane closes map order, instead of staying there.
            # So re-enter map order, and re-executing the order.
            self.order_enter()
            confirm_timer.reset()
            missing_timer.reset()
            continue