Is this a valid game of Five Up (Dominoes)?
Haskell, 188 174 168 bytes

f(p:r)=[p]!r$p?p
(s!(p:r))o|b&lt;-[p,reverse p]=or[(q:s)!r$q%o|q&lt;-b,elem(q!!0)o,all(`notElem`s)b]
(s!_)o=1&lt;3
p@[x,y]?r=[c|x==y,c&lt;-p]++r
p@[x,y]%(a:r)|a/=x=a:p%r|z&lt;-y:r=p?z

Try it online! Usage example: f [[6,6],[6,5],[5,3],[3,0]] yields True.
Ungolfed:

f :: [[Int]] -&gt; Bool
f (p:r) = check [p] (double p p) r

check :: [[Int]] -&gt; [Int] -&gt; [[Int]] -&gt; Bool
check seen open [] = True
check seen open ([x,y]:r) =&#32;
&#9;  notElem [x,y] seen
   &amp;&amp; notElem [y,x] seen
   &amp;&amp; (elem x open &amp;&amp; check ([x,y]:seen) (update [x,y] open) r&#32;
   ||  elem y open &amp;&amp; check ([y,x]:seen) (update [y,x] open) r)

double :: [Int] -&gt; [Int] -&gt; [Int]
double [x,y] rest =&#32;
    if x==y&#32;
    then [x,y] ++ rest&#32;
    else rest

update :: [Int] -&gt; [Int] -&gt; [Int]
update [x,y] (a:rest) =&#32;
    if x==a&#32;
    then double [x,y] (y:rest)&#32;
    else a : update [x,y] rest

Try it online!