It does work the way you want actually, but its by reference:
item1 = [0, 0]
item2 = [0, 1]
item3 = [1, 0]
item4 = [1, 1]
list = [item1, item2, item3]
console.log item1 in list # true
console.log item2 in list # true
console.log item3 in list # true
console.log item4 in list # false
To make it work by deep check instead of reference, you would have to fork the coffee-script compiler, add this feature to the coffee-script language, then submit a pull request, convince the gatekeepers that this is a good feature and hope they merge it in.
list = [[0, 0], [0, 1], [1, 0]]
contains = (lst, compare) ->
ret = true for l in lst when l[0] is compare[0] and l[1] is compare[1]
return Boolean ret
console.log contains list, [0, 0] # true
console.log contains list, [1, 0] # true
console.log contains list, [0, 1] # true
console.log contains list, [1, 1] # false