You should take a look at containers.
http://sourceforge.net/apps/mediawiki/construct/index.php?title=Containers
All the conditions with pick by value are confusing, when all you have to do is set that instances private variable to a Boolean... off or on. Likewise its container can have its private variable changed since it was placed in the selected objects list by the condition.
You can then compare that objects private variable, and any instance of that object that meets the conditions criteria will be picked... as well as its container.
Basically:
doll on collision with switch
switch set pv to 1
oor set pv to 1
// This is with door as a container to switch//
//door is automatically picked when switch is//
then
switch compare private variable = 1
do stuff
//That will pick any instance of the object switch, that has its variable set to 1//