def METHOD_NAME(self, tasklist, root):
    """Populate a list of all the subtasks and
       their children, recursively.
       Also collect the list of affected tags
       which should be refreshed"""
    if root not in tasklist:
        tasklist.append(root)
        [self.update_tags.append(tagname)
         for tagname in root.get_tags_name()
         if tagname not in self.update_tags]
        [self.METHOD_NAME(tasklist, i)
         for i in root.get_subtasks() if i not in tasklist]