JavaScript, 86 8282 77 bytes
x=>([s,a=0,b=a,c,d,e,f]=x,f?x:e?x+e:d?s+a+d+b+d+c+d:[s,a,d||a,c?s+a+a+b+b+c+cb:s+a+a+a+b+b+ba,d||b,v=c||b,d||v].join``)
just find out that remove recursive save 4 bytes...
idea from @Arnauld save 4 bytes, +1 more bytes