Can this pattern be made with dominoes?
JavaScript (V8), 129 bytes

f=(g,p=d=&gt;(n=2,v=g.map((r,i)=&gt;r.map((c,j)=&gt;c*n&amp;&amp;(n&gt;1?~(y=i+d,x=j+!d):i==y&amp;j==x)?!n--:c)),n?n&gt;1:f(v)))=&gt;g in f?f[g]:f[g]=p(0)|p(1)

Try it online!
Receives the input as a 2-dimensional array of booleans and returns 0 for false or 1 for true.
Explanation
Solves the problem recursively calling itself with a single domino removed from the grid. If it is called with an empty grid (which will happen if the initial grid only contained valid domino positions) then it returns true. At each call it tries removing the top-left position containing a domino, calling itself with either the horizontal or vertical orientation removed.
f=(g,
// p = function to remove the top-left domino and recurse if the remove succeeded
p=d=&gt;(
// n = squares remaining for removal
n=2,
// v = grid after removal
v=g.map((r,i)=&gt;r.map((c,j)=&gt;c*n&amp;&amp;(n&gt;1?~(y=i+d,x=j+!d):i==y&amp;j==x)?!n--:c)),
// if n=2 the grid was empty so we return true, if n=1 we could not remove the domino
// if n=0 the domino was successfully removed and we recurse
n?n&gt;1:f(v))
// try removing the top-left square with a horizontal or vertical domino
// and cache results
)=&gt;g in f?f[g]:f[g]=p(0)|p(1)