code: def add_item(self, path, name, icon=None, url=None, order=None, permission=None, active_regex=None):
          
          if self.root_item is None:
              self.root_item = MenuItem('ROOT', 'ROOT')
  
          root_item = self.root_item
          current_path = ''
          for node in path.split('/')[:-1]:
              if not node:
                  continue
  
              current_path = '/' + '{}/{}'.format(current_path, node).strip('/')
              new_root = root_item.child_by_code(node)
              if not new_root:  # Create menu item if not exists
                  new_root = MenuItem(current_path, name=str(node).capitalize())
                  root_item.add_child(new_root)
              root_item = new_root
  
          new_item = MenuItem(path, name, icon, url, order, permission, active_regex)
  
          current_item = root_item.child_by_code(path.split('/')[-1])
          if current_item:
              current_item.merge(new_item)
          else:
              root_item.add_child(new_item)
docs: Add new menu item to menu
  
          :param path: Path of menu
          :param name: Display name
          :param icon: CSS icon
          :param url: link to page
          :param order: Sort order
          :param permission:
          :return: