1

Python 3, 274 bytes
def g(p):
q=lambda a:[[i,a]for i in range(len(p)-a)if p[i][:-1]in p[i+a][:-1]or p[i][-1]in p[i+a]]
for n in q(1)+q(3):
s=sum(n);c=p[:s]+p[s+1:];c[n[0]]=p[s]
if[]!=g(c):return p[n[0]]+' <- '+p[s]+','+g(c)
return''if len(p)<2else[]
print(g(input().split(','))[:-1]or'')...