Reconstruct My Matryoshka Dolls
Python 2, 298 bytes



def f(x,E=enumerate):
 o=[]
 while any(x):
&#9;for k,p in E(x):
&#9; e=0
&#9; if sum(i(p,j)for j in x)&lt;1:
&#9;&#9;for d,r in E(o):
&#9;&#9; if i(p,r[-1])*((r[-1]&lt;e)or e==0):m,e=d,r[-1]
&#9;&#9;if e:o[m]+=[p]
&#9;&#9;else:o+=[[p]]
&#9;&#9;x[k]=''
 print sorted(o)
i=lambda p,b:(b!=p)*any([p==b[j:j+len(p)]for j in range(len(b)-len(p)+1)])


Try it online!

-28 bytes with tips from @dylnan, bug find by @Dennis, and bug fix by @Mr.Xcoder