code: def unweighted_minimum_spanning_tree(tree, children=iter):
      """
      Output a Minimum Spanning Tree (MST) of an unweighted graph,
      by traversing the nodes of a tree in breadth-first order,
      discarding eventual cycles.
  
      The first argument should be the tree root;
      children should be a function taking as argument a tree node
      and returning an iterator of the node's children.
  
      >>> import nltk
      >>> from nltk.util import unweighted_minimum_spanning_tree as mst
      >>> wn=nltk.corpus.wordnet
      >>> from pprint import pprint
      >>> pprint(mst(wn.synset('bound.a.01'), lambda s:s.also_sees()))
      [Synset('bound.a.01'),
       [Synset('unfree.a.02'),
        [Synset('confined.a.02')],
        [Synset('dependent.a.01')],
        [Synset('restricted.a.01'), [Synset('classified.a.02')]]]]
      """
      return acyclic_dic2tree(
          tree, unweighted_minimum_spanning_dict(tree, children)
      )
  
imports: import inspect
  import locale
  import os
  import pydoc
  import re
  import textwrap
  import unicodedata
  import warnings
  from collections import defaultdict, deque
  from itertools import chain, combinations, islice, tee
  from pprint import pprint
  from urllib.request import HTTPPasswordMgrWithDefaultRealm, ProxyBasicAuthHandler, ProxyDigestAuthHandler, ProxyHandler, build_opener, getproxies, install_opener
  from nltk.collections import *
  from nltk.internals import deprecated, raise_unorderable_types, slice_bounds
label_desc: Use image node_id 18 for calling a global function with example usage: unweighted_minimum_spanning_tree(tree, children) and returns: acyclic_dic2tree