Today i was working on a blendshape that i wanted to come on only when two other blendshapes were active and be off otherwise.
So one approach i used here was to use utility node and two blendshape weights multiplied together to give something between 0 and 1.
Basically i used driven key where the output of the multiply divide node tells the blendshape weight what to be. That way for example if say (wanted blendshape "corner_up_right" to come on when "corner_right" is on and "corner_up". I hook up "corner_right" and "corner_up" blendweight to the input1X, input2X of multiply divide node. Then i used driven key from multiplyDivide.outputX into the "corner_up_right" blendweight.
The result "corner_up_right" would = 0 when say "corner_right:1" "corner_up:0" (1 x 0), but would be 1 when "corner_right:1", "corner_up:1" (1 x 1). By using driven key onto the final weights instead of say direct connection, we can tweak how the corrective comes on using the graph editor.
Hope this was helpful,