contains() looks for a substring, whereas you seem to be trying to match the whole value, so you want "=".
The simplest approach is just to spell it out:
/path/node[.='true' or .='false' or .='maybe']
In XPath 2.0 you can write
/path/node[.=('true', 'false', 'maybe')]
or you can use regular expressions:
/path/node[matches(., '^(true|false|maybe)$')]
Another approach in XPath 1.0 is to put your strings in a lookup document
<values>
<value>true</value>
<value>false</value>
<value>maybe</value>
</values>
and then
/path/node[. = $values/value]
assuming your API gives you a chance to bind the variable.
Michael Kay
http://www.saxonica.com/
Author, XSLT Programmer's Reference and XPath 2.0 Programmer's Reference