if(exists key) { if defined key) { if value supplied { if(value is valid) { if(value eq this) { use this } elsif (value eq that) { do that } else { yell } } else { use default } } else if( value is required ) { do something } else do something else } } else { key not supplied... } ####