diff --git a/pd/doc/5.reference/route-help.pd b/pd/doc/5.reference/route-help.pd
index 224fb0ea724c13deaa0236ab63b9067fb5d2ecdd..2293426d5622055e65c0f5eb68058c707af409d0 100644
--- a/pd/doc/5.reference/route-help.pd
+++ b/pd/doc/5.reference/route-help.pd
@@ -1,80 +1,543 @@
-#N canvas 0 0 815 537 12;
-#X obj 183 213 print x1;
-#X obj 261 213 print x2;
-#X obj 339 213 print x3;
-#X obj 422 213 print x4;
-#X obj 183 185 route 23 54 1;
-#X msg 183 155 234 345 456;
-#X msg 308 155 23 34 45;
-#X msg 414 155 54 43;
-#X msg 485 155 1 foo bar;
-#X msg 254 247 impeach ringo starr;
-#X obj 191 275 route big apple;
-#X msg 435 248 apple pie;
-#X msg 191 247 1 2 3;
-#X msg 523 248 big apple pie;
-#X msg 578 155 walk the dog;
-#X text 45 33 Route checks the first element of a message against each
-of its arguments \, which may be numbers or symbols (but not a mixture
-of the two.);
-#X text 44 85 If a match is found \, the rest of the message appears
-on the corresponding outlet. If no match \, the message is repeated
-to the last "rejection" outlet. The number of outlets is the number
-of arguments plus one.;
-#X text 19 185 numeric arguments:;
-#X text 17 275 symbolic arguments:;
-#X obj 157 489 print z1;
-#X obj 233 489 print z2;
-#X msg 124 424 bang;
-#X msg 170 424 list;
-#X msg 213 424 5;
-#X msg 251 424 float 5;
-#X msg 320 424 list 5;
-#X msg 385 424 symbol pie;
-#X msg 560 424 pie;
-#X msg 483 424 list pie;
-#X msg 70 424 1 2 3;
-#X obj 157 461 route list float symbol bang;
-#X obj 310 489 print z3;
-#X obj 387 489 print z4;
-#X obj 461 489 print z5;
-#X obj 191 305 print y1;
-#X obj 269 305 print y2;
-#X obj 347 305 print y3;
-#X text 76 344 To avoid confusion between \, say \, the number 5 and
-the list contining only the number 5 \, both messages match "float"
-\, and ditto for symbols. An empty list matches "bang". In Pd these
-are all considered special cases of lists.;
-#X text 545 506 updated for Pd version 0.35;
-#X text 97 9 - route messages according to their first element;
-#X obj 43 8 route;
-#X connect 4 0 0 0;
-#X connect 4 1 1 0;
-#X connect 4 2 2 0;
-#X connect 4 3 3 0;
-#X connect 5 0 4 0;
-#X connect 6 0 4 0;
-#X connect 7 0 4 0;
-#X connect 8 0 4 0;
-#X connect 9 0 10 0;
-#X connect 10 0 34 0;
-#X connect 10 1 35 0;
-#X connect 10 2 36 0;
-#X connect 11 0 10 0;
-#X connect 12 0 10 0;
-#X connect 13 0 10 0;
-#X connect 14 0 4 0;
-#X connect 21 0 30 0;
-#X connect 22 0 30 0;
-#X connect 23 0 30 0;
-#X connect 24 0 30 0;
-#X connect 25 0 30 0;
-#X connect 26 0 30 0;
-#X connect 27 0 30 0;
-#X connect 28 0 30 0;
-#X connect 29 0 30 0;
-#X connect 30 0 19 0;
-#X connect 30 1 20 0;
-#X connect 30 2 31 0;
-#X connect 30 3 32 0;
-#X connect 30 4 33 0;
+#N canvas 513 24 555 689 10;
+#X obj 0 697 cnv 15 552 21 empty \$0-pddp.cnv.footer empty 20 12 0
+14 -228856 -66577 0;
+#X obj 0 0 cnv 15 552 40 empty \$0-pddp.cnv.header route 3 12 0 18
+-204280 -1 0;
+#X obj 0 240 cnv 3 550 3 empty \$0-pddp.cnv.inlets inlets 8 12 0 13
+-228856 -1 0;
+#N canvas 50 229 494 392 META 0;
+#X text 12 85 PLATFORM windows macosx gnulinux;
+#X text 12 165 LIBRARY internal;
+#X text 12 205 WEBSITE http://crca.ucsd.edu/~msp/;
+#X text 12 35 LICENSE SIBSD;
+#X text 12 185 AUTHOR Miller Puckette;
+#X text 12 245 HELP_PATCH_AUTHORS This help patch was updated for Pd
+version 0.38.4 by Dave Sabine and Hans-Christoph Steiner as part of
+a project called pddp proposed by Krzysztof Czaja to build comprehensive
+documentation for Pd. Jonathan Wilkes revised the patch to conform
+to the PDDP template for Pd version 0.42.;
+#X text 12 105 INLET_0 anything;
+#X text 12 125 OUTLET_N anything;
+#X text 12 145 OUTLET_R anything;
+#X text 12 5 KEYWORDS control needs_work list_op symbol_op list_op
+anything_op;
+#X text 12 225 RELEASE_DATE 1997;
+#X text 12 55 DESCRIPTION route a message according to the selector
+or first element;
+#X restore 500 699 pd META;
+#X obj 0 447 cnv 3 550 3 empty \$0-pddp.cnv.outlets outlets 8 12 0
+13 -228856 -1 0;
+#X obj 0 576 cnv 3 550 3 empty \$0-pddp.cnv.argument arguments 8 12
+0 13 -228856 -1 0;
+#X obj 0 672 cnv 3 550 3 empty \$0-pddp.cnv.more_info more_info 8 12
+0 13 -228856 -1 0;
+#N canvas 74 482 428 109 Related_objects 0;
+#X obj 1 1 cnv 15 425 20 empty \$0-pddp.cnv.subheading empty 3 12 0
+14 -204280 -1 0;
+#X text 8 2 [route] Related Objects;
+#X obj 22 43 select;
+#X obj 72 43 spigot;
+#X obj 123 43 moses;
+#X restore 102 699 pd Related_objects;
+#X obj 78 249 cnv 17 3 125 empty \$0-pddp.cnv.let.0 0 5 9 0 16 -228856
+-162280 0;
+#X obj 78 456 cnv 17 3 17 empty \$0-pddp.cnv.let.0 n 5 9 0 16 -228856
+-162280 0;
+#X obj 512 4 route;
+#X obj 459 20 pddp/pddplink http://wiki.puredata.info/en/route -text
+pdpedia: route;
+#X obj 27 113 route 0 1;
+#X msg 27 61 0 12;
+#X msg 65 61 1 13;
+#X msg 103 61 2 14;
+#X obj 78 156 print rejection_outlet;
+#X obj 27 200 print left_outlet;
+#X obj 78 136 bng 15 250 50 0 empty empty empty 17 7 0 10 -262144 -1
+-1;
+#X obj 52 178 print middle_outlet;
+#X obj 52 136 bng 15 250 50 0 empty empty empty 17 7 0 10 -262144 -1
+-1;
+#X obj 27 136 bng 15 250 50 0 empty empty empty 17 7 0 10 -262144 -1
+-1;
+#X msg 140 61 7 17;
+#N canvas 414 108 517 509 float_mode 0;
+#X text 89 271 float;
+#X text 89 365 list;
+#X text 89 325 symbol;
+#X text 89 455 pointer;
+#X text 139 455 - a pointer is always sent to the rightmost outlet.
+;
+#X text 89 438 bang;
+#X text 139 271 - the incoming value is compared to the creation argument(s).
+If there is a match \, a bang is sent to the outlet corresponding to
+the matching creation argument. If there is no match the input is sent
+to the rightmost outlet.;
+#X obj 0 0 cnv 15 515 20 empty \$0-pddp.cnv.subheading empty 3 12 0
+14 -204280 -1 0;
+#X text 8 2 [route] Message Handling in "Float Mode";
+#X obj 1 261 cnv 3 500 3 empty \$0-pddp.cnv.inlets inlets 8 12 0 13
+-228856 -1 0;
+#X obj 70 270 cnv 17 3 225 empty \$0-pddp.cnv.let.0 0 5 9 0 16 -228856
+-162280 0;
+#X text 138 438 - a bang will be sent to the rightmost inlet.;
+#X text 88 481 All other messages will be sent to the rightmost outlet.
+;
+#X msg 141 50 2;
+#X msg 148 72 1 2 3;
+#X obj 129 167 bng 15 250 50 0 empty empty empty 17 7 0 10 -262144
+-1 -1;
+#X msg 169 116 something else;
+#X obj 204 167 print rejection_outlet;
+#X obj 141 239 print out0;
+#X obj 162 217 print out1;
+#X text 50 26 For "float mode" \, the first argument must be a float.
+;
+#X obj 141 142 route 1 2 3;
+#X obj 183 195 print out2;
+#X msg 158 94 3 dog night;
+#X text 139 325 - the symbol is compared to the creation arguments
+\, and a bang is sent to the corresponding outlet if there is a match.
+;
+#X text 139 365 - the first element of the list is compared to the
+creation argument(s). If there is a match \, the first element is removed
+from the list \, and the remaining list is sent to the outlet corresponding
+to the matching creation argument. If there is no match the input is
+sent to the rightmost outlet.;
+#X obj 150 167 bng 15 250 50 0 empty empty empty 17 7 0 10 -262144
+-1 -1;
+#X obj 171 167 bng 15 250 50 0 empty empty empty 17 7 0 10 -262144
+-1 -1;
+#X connect 13 0 21 0;
+#X connect 14 0 21 0;
+#X connect 16 0 21 0;
+#X connect 21 0 18 0;
+#X connect 21 0 15 0;
+#X connect 21 1 19 0;
+#X connect 21 1 26 0;
+#X connect 21 2 22 0;
+#X connect 21 2 27 0;
+#X connect 21 3 17 0;
+#X connect 23 0 21 0;
+#X restore 171 306 pd float_mode;
+#X text 98 249 anything;
+#X text 168 249 - [route] handles its input in 3 different "modes"
+\, depending on what the creation arguments are. Click the subpatches
+below to see how message types are handled under each mode.;
+#N canvas 289 73 516 599 selector_mode 0;
+#X text 88 548 pointer;
+#X text 138 548 - a pointer is always sent to the rightmost outlet.
+;
+#X obj 0 0 cnv 15 515 21 empty \$0-pddp.cnv.subheading empty 3 12 0
+14 -204280 -1 0;
+#X obj 0 389 cnv 3 500 3 empty \$0-pddp.cnv.inlets inlets 8 12 0 13
+-228856 -1 0;
+#X obj 69 398 cnv 17 3 255 empty \$0-pddp.cnv.let.0 0 5 9 0 16 -228856
+-162280 0;
+#X obj 56 244 bng 15 250 50 0 empty empty empty 17 7 0 10 -262144 -1
+-1;
+#X obj 89 244 bng 15 250 50 0 empty empty empty 17 7 0 10 -262144 -1
+-1;
+#X obj 203 262 print rejection_outlet;
+#X msg 68 59 der;
+#X obj 68 349 print out0;
+#X obj 101 327 print out1;
+#X text 7 1 [route] Message Handling in "Selector Mode";
+#X msg 92 690 foo;
+#X msg 101 718 symbol foo;
+#X obj 169 283 print out3;
+#X obj 92 840 print out0;
+#X obj 133 818 print out1;
+#X text 120 690 the selector "foo" matches the first argument;
+#X text 171 718 the selector "symbol" matches the second argument;
+#X text 88 398 bang;
+#X text 138 398 - if one of the creation arguments is "bang" \, then
+a bang will be sent out the corresponding outlet.;
+#X text 138 428 - if one of the creation arguments is "float" \, then
+an incoming float will be sent out the corresponding outlet.;
+#X text 88 428 float;
+#X text 88 458 list;
+#X text 138 458 - if one of the creation arguments is "list" \, then
+two behaviors are possible:;
+#X text 138 484 a) if the first element is a float \, the list is sent
+out the corresponding outlet.;
+#X text 138 509 b) if the first element is a symbol \, the "list" selector
+is removed \, and the remaining message is sent out the corresponding
+outlet.;
+#X text 88 568 symbol;
+#X text 138 568 - if one of the creation arguments is "symbol" \, then
+an incoming symbol will be sent out the corresponding outlet.;
+#X text 87 596 All other messages - the selector of the incoming message
+is compared to the creation argument(s). If there is a match \, the
+selector is stripped and the remaining message is sent to the corresponding
+outlet. If there is no match the input is sent to the rightmost outlet.
+;
+#X text 91 667 Beware! All this can be confusing at times...;
+#X msg 84 103 das;
+#X obj 135 305 print out2;
+#X obj 123 244 bng 15 250 50 0 empty empty empty 17 7 0 10 -262144
+-1 -1;
+#X obj 157 244 bng 15 250 50 0 empty empty empty 17 7 0 10 -262144
+-1 -1;
+#X msg 108 182 doh;
+#X obj 191 244 bng 15 250 50 0 empty empty empty 17 7 0 10 -262144
+-1 -1;
+#X msg 74 81 die 41;
+#X text 49 36 In selector mode \, all creation arguments should be
+symbols.;
+#X obj 68 221 route der die das float;
+#X msg 93 125 float 41;
+#X msg 103 153 41;
+#X text 135 147 (Remember: a single float "n" in a message or object
+box is shorthand for "float n");
+#X text 134 181 sent to the rightmost outlet (the "rejection outlet")
+;
+#X obj 92 774 route foo symbol list;
+#X obj 174 796 print out2;
+#X msg 128 744 2 3 four;
+#X text 189 744 an implicit list-- matches the third argument;
+#X connect 8 0 39 0;
+#X connect 12 0 44 0;
+#X connect 13 0 44 0;
+#X connect 31 0 39 0;
+#X connect 35 0 39 0;
+#X connect 37 0 39 0;
+#X connect 39 0 5 0;
+#X connect 39 0 9 0;
+#X connect 39 1 6 0;
+#X connect 39 1 10 0;
+#X connect 39 2 32 0;
+#X connect 39 2 33 0;
+#X connect 39 3 14 0;
+#X connect 39 3 34 0;
+#X connect 39 4 7 0;
+#X connect 39 4 36 0;
+#X connect 40 0 39 0;
+#X connect 41 0 39 0;
+#X connect 44 0 15 0;
+#X connect 44 1 16 0;
+#X connect 44 2 45 0;
+#X connect 46 0 44 0;
+#X restore 171 331 pd selector_mode;
+#X obj 78 496 cnv 17 3 17 empty \$0-pddp.cnv.let.0 r 5 9 0 16 -228856
+-162280 0;
+#X text 98 497 anything;
+#X text 80 594 1) float;
+#X text 168 594 - [route] can take symbols or floats as arguments.
+(Note: the first argument determines which "mode" below.) If floats
+are used \, [route] operates in "float mode"-- if symbols are used
+\, float operates in "selector mode." See the subpatches above to see
+how incoming data is handled in each mode.;
+#X obj 4 699 pddp/pddplink all_about_help_patches.pd -text Usage Guide
+;
+#X obj 100 675 pddp/pddplink ../2.control.examples/18.conditional.pd
+-text doc/2.control.examples/18.conditional.pd;
+#X msg 140 85 Grizabella;
+#X text 11 23 route a message according to the selector or first element
+;
+#N canvas 592 32 426 587 type_mode 0;
+#X obj 0 0 cnv 15 425 20 empty \$0-pddp.cnv.subheading empty 3 12 0
+14 -204280 -1 0;
+#X text 7 1 [route] Message Handling in "Type Mode";
+#X msg 85 305 bang;
+#X msg 96 348 symbol pie;
+#X msg 99 368 pie;
+#X msg 74 265 1 2 3;
+#X text 93 224 a float;
+#X text 119 264 a list (of floats);
+#X text 122 305 a bang;
+#X text 175 348 a symbol;
+#X text 133 369 none of the above!;
+#X text 178 284 a list of symbols;
+#X floatatom 109 425 5 0 0 0 - - -, f 5;
+#X symbolatom 157 424 10 0 0 0 - - -, f 10;
+#X obj 62 445 bng 15 250 50 0 empty empty bang -6 23 1 12 -262144 -1
+-1;
+#X msg 62 225 89;
+#X msg 68 245 float 7;
+#X obj 62 401 route bang float symbol list;
+#X obj 109 445 bng 15 250 50 0 empty empty float -4 23 1 12 -262144
+-1 -1;
+#X obj 157 445 bng 15 250 50 0 empty empty symbol -12 23 1 12 -262144
+-1 -1;
+#X obj 205 445 bng 15 250 50 0 empty empty list -2 23 1 12 -262144
+-1 -1;
+#X obj 253 445 bng 15 250 50 0 empty empty undefined -18 23 1 12 -262144
+-1 -1;
+#X msg 80 285 list moon earth;
+#X text 123 243 definitely a float!;
+#X text 49 482 [trigger]-style shortcuts don't work:;
+#X text 162 501 !=;
+#X obj 63 502 route b f s l;
+#X obj 184 502 route bang float symbol list;
+#N canvas 0 22 466 633 routing_data_types 0;
+#X obj 334 314 route symbol;
+#X obj 336 334 bng 15 250 50 0 empty empty empty 0 -6 0 8 -262144 -1
+-1;
+#X obj 413 335 bng 15 250 50 0 empty empty empty 0 -6 0 8 -262144 -1
+-1;
+#X obj 331 361 route symbol;
+#X obj 333 381 bng 15 250 50 0 empty empty empty 0 -6 0 8 -262144 -1
+-1;
+#X obj 410 382 bng 15 250 50 0 empty empty empty 0 -6 0 8 -262144 -1
+-1;
+#X msg 318 269 test;
+#X msg 357 269 symbol test;
+#X obj 58 331 bng 15 250 50 0 empty empty empty 0 -6 0 8 -262144 -1
+-1;
+#X obj 135 331 bng 15 250 50 0 empty empty empty 0 -6 0 8 -262144 -1
+-1;
+#X obj 55 378 bng 15 250 50 0 empty empty empty 0 -6 0 8 -262144 -1
+-1;
+#X obj 132 378 bng 15 250 50 0 empty empty empty 0 -6 0 8 -262144 -1
+-1;
+#X msg 89 266 bang;
+#X obj 56 311 route bang;
+#X obj 53 358 route bang;
+#X text 14 5 routing based on reserved words:;
+#X obj 188 331 bng 15 250 50 0 empty empty empty 0 -6 0 8 -262144 -1
+-1;
+#X obj 265 331 bng 15 250 50 0 empty empty empty 0 -6 0 8 -262144 -1
+-1;
+#X obj 185 378 bng 15 250 50 0 empty empty empty 0 -6 0 8 -262144 -1
+-1;
+#X obj 262 378 bng 15 250 50 0 empty empty empty 0 -6 0 8 -262144 -1
+-1;
+#X obj 186 311 route float;
+#X obj 183 358 route float;
+#X msg 170 266 1;
+#X msg 209 266 float 12;
+#X obj 181 542 route list;
+#X obj 181 561 bng 15 250 50 0 empty empty empty 0 -6 0 8 -262144 -1
+-1;
+#X obj 249 562 bng 15 250 50 0 empty empty empty 0 -6 0 8 -262144 -1
+-1;
+#X obj 168 580 route list;
+#X obj 168 599 bng 15 250 50 0 empty empty empty 0 -6 0 8 -262144 -1
+-1;
+#X obj 236 600 bng 15 250 50 0 empty empty empty 0 -6 0 8 -262144 -1
+-1;
+#X msg 184 493 list 1 two 3;
+#X msg 167 473 1 two 3;
+#X msg 200 513 list one 2 three;
+#X msg 365 289 symbol;
+#X msg 113 484 list;
+#X msg 224 287 float test;
+#X text 26 245 These all output the as same atom type that is routed:
+;
+#X msg 15 266 bang test;
+#X obj 71 131 route 1;
+#X msg 71 183;
+#X obj 71 164 prepend set;
+#X msg 71 100 1 2 3 4;
+#X msg 218 183;
+#X obj 218 164 prepend set;
+#X obj 218 131 route this;
+#X msg 218 100 this is not a list;
+#X text 21 50 [route] has three modes \, first is float \, second is
+symbol \, and third is data type. In the first two modes \, the first
+element of the set is stripped off by [route].;
+#X text 26 206 In the third mode \, [route] outputs the same atom type
+(bang->bang \, float->float \, symbol->symbol).;
+#X text 26 419 Lists do not behave the same with [route list] even
+though it is interpreting incoming lists \, not just routing by keyword
+\, as in the second symbol mode.;
+#X msg 174 164 set;
+#X text 157 164 re;
+#X text 164 24 "bang" \, "float" \, "symbol" \, and "list";
+#X connect 0 0 1 0;
+#X connect 0 0 3 0;
+#X connect 0 1 2 0;
+#X connect 3 0 4 0;
+#X connect 3 1 5 0;
+#X connect 6 0 0 0;
+#X connect 7 0 0 0;
+#X connect 12 0 13 0;
+#X connect 13 0 8 0;
+#X connect 13 0 14 0;
+#X connect 13 1 9 0;
+#X connect 14 0 10 0;
+#X connect 14 1 11 0;
+#X connect 20 0 16 0;
+#X connect 20 0 21 0;
+#X connect 20 1 17 0;
+#X connect 21 0 18 0;
+#X connect 21 1 19 0;
+#X connect 22 0 20 0;
+#X connect 23 0 20 0;
+#X connect 24 0 25 0;
+#X connect 24 0 27 0;
+#X connect 24 1 26 0;
+#X connect 27 0 28 0;
+#X connect 27 1 29 0;
+#X connect 30 0 24 0;
+#X connect 31 0 24 0;
+#X connect 32 0 24 0;
+#X connect 33 0 0 0;
+#X connect 34 0 24 0;
+#X connect 35 0 20 0;
+#X connect 37 0 13 0;
+#X connect 38 0 40 0;
+#X connect 40 0 39 0;
+#X connect 41 0 38 0;
+#X connect 43 0 42 0;
+#X connect 44 0 43 0;
+#X connect 45 0 44 0;
+#X connect 49 0 42 0;
+#X connect 49 0 39 0;
+#X restore 71 549 pd routing_data_types;
+#X text 47 529 More info:;
+#X text 20 37 In type mode \, the arguments are zero or one of the
+four reserved words: "bang" \, "float" \, "symbol" \, and "list". Instead
+of matching the 'value' of a message \, the [route] object will match
+'data type': i.e. lists will be sent through the first outlet \, floats
+will be sent through the second outlet \, symbols through the third
+outlet \, bangs through the fourth outlet. The fifth outlet will then
+output anything that does not match one of the previously defined data
+types (i.e. the "pie" message below is a text message that hasn't been
+defined as a 'symbol' - hence \, Pd cannot determine which data type
+it is and it will be output through the right-most outlet).;
+#N canvas 0 22 450 300 special_cases_of_lists 0;
+#X msg 87 54 list;
+#X msg 88 87 list 5;
+#X text 65 23 SPECIAL CASES OF LISTS.;
+#X floatatom 107 188 5 0 0 0 - - -, f 5;
+#X symbolatom 155 187 10 0 0 0 - - -, f 10;
+#X obj 60 208 bng 15 250 50 0 empty empty bang -6 23 1 12 -262144 -1
+-1;
+#X msg 88 124 list not-a-list;
+#X obj 60 164 route bang float symbol list;
+#X obj 107 208 bng 15 250 50 0 empty empty float -4 23 1 12 -262144
+-1 -1;
+#X obj 155 208 bng 15 250 50 0 empty empty symbol -12 23 1 12 -262144
+-1 -1;
+#X obj 203 208 bng 15 250 50 0 empty empty list -2 23 1 12 -262144
+-1 -1;
+#X obj 251 208 bng 15 250 50 0 empty empty undefined -18 23 1 12 -262144
+-1 -1;
+#X text 86 40 An empty list is translated into a bang;
+#X text 86 73 A list with only one float is translated to a float;
+#X text 86 109 A list with only one symbol is translated to a symbol
+;
+#X connect 0 0 7 0;
+#X connect 1 0 7 0;
+#X connect 3 0 8 0;
+#X connect 4 0 9 0;
+#X connect 6 0 7 0;
+#X connect 7 0 5 0;
+#X connect 7 1 3 0;
+#X connect 7 2 4 0;
+#X connect 7 3 10 0;
+#X connect 7 4 11 0;
+#X restore 211 549 pd special_cases_of_lists;
+#X obj 91 328 bng 15 250 50 0 empty empty empty 17 7 0 10 -262144 -1
+-1;
+#X text 108 326 also a bang;
+#X connect 2 0 17 0;
+#X connect 3 0 17 0;
+#X connect 4 0 17 0;
+#X connect 5 0 17 0;
+#X connect 12 0 18 0;
+#X connect 13 0 19 0;
+#X connect 15 0 17 0;
+#X connect 16 0 17 0;
+#X connect 17 0 14 0;
+#X connect 17 1 12 0;
+#X connect 17 2 13 0;
+#X connect 17 3 20 0;
+#X connect 17 4 21 0;
+#X connect 22 0 17 0;
+#X connect 32 0 17 0;
+#X restore 171 356 pd type_mode;
+#X text 277 356 match the type of the message;
+#X text 277 331 match first symbol in the message;
+#X text 261 306 match first float in the message;
+#X text 98 457 anything;
+#X text 168 540 An incoming pointer will never match and so will always
+be sent to the rejection outlet.;
+#X text 168 456 - an outlet is added for each argument. Messages that
+match are output from the respective outlet with its first element
+stripped off.;
+#X text 168 497 - the rightmost outlet of [route] is always the "rejection
+outlet." Incoming messages which do not match any of the arguments
+are sent to the rightmost outlet unchanged.;
+#X text 97 608 symbol;
+#X obj 78 387 cnv 17 3 45 empty \$0-pddp.cnv.let.1 1 5 9 0 16 -228856
+-162280 0;
+#X text 98 386 float;
+#N canvas 79 52 428 344 second_inlet 0;
+#X floatatom 68 278 5 0 0 0 - - -, f 5;
+#X floatatom 31 232 5 0 0 0 - - -, f 5;
+#X floatatom 80 234 5 0 0 0 - - -, f 5;
+#X obj 217 301 bng 15 250 50 0 empty empty empty 0 -6 0 8 -262144 -1
+-1;
+#X msg 203 206 symbol word;
+#X msg 217 228 symbol other;
+#X msg 315 240 symbol other;
+#X obj 274 301 bng 15 250 50 0 empty empty empty 0 -6 0 8 -262144 -1
+-1;
+#X msg 312 216 symbol word;
+#X obj 1 0 cnv 15 425 20 empty \$0-pddp.cnv.subheading empty 3 12 0
+14 -204280 -1 0;
+#X text 8 1 [route] The Second Inlet;
+#X text 20 38 The right inlet is used to reset the argument's value
+as in the patch below. This feature is available only on [route] objects
+with only ONE creation argument (or no creation arguments in which
+case it takes on the default value of 0). In the other examples with
+multiple creation arguments \, you'll notice that this second inlet
+is absent.;
+#X obj 23 256 route 42;
+#X obj 217 276 route word;
+#X msg 23 210 42;
+#X obj 217 255 list trim;
+#X text 20 128 Also notice in the right example how symbols need to
+be truncated of its symbol prefix using [list trim] or using a message.
+Otherwise \, route will not recognize the value correctly.;
+#X msg 164 206 word;
+#X msg 125 182 symbol word;
+#X obj 23 278 bng 15 250 50 0 empty empty empty 17 7 0 10 -262144 -1
+-1;
+#X connect 1 0 12 0;
+#X connect 2 0 12 1;
+#X connect 4 0 15 0;
+#X connect 5 0 15 0;
+#X connect 6 0 13 1;
+#X connect 8 0 13 1;
+#X connect 12 0 19 0;
+#X connect 12 1 0 0;
+#X connect 13 0 3 0;
+#X connect 13 1 7 0;
+#X connect 14 0 12 0;
+#X connect 15 0 13 0;
+#X connect 17 0 13 0;
+#X connect 18 0 13 0;
+#X restore 171 416 pd second_inlet;
+#X text 98 400 symbol;
+#X text 167 386 - the right inlet is available if there is only one
+creation argument. See the subpatch below for details:;
+#X obj 258 145 route word;
+#X obj 269 110 list trim;
+#X obj 315 168 print rejection_outlet;
+#X obj 258 192 print left_outlet;
+#X symbolatom 355 86 10 0 0 0 - - -, f 10;
+#X symbolatom 334 119 10 0 0 0 - - -, f 10;
+#X text 398 119 This one doesn't work;
+#X msg 269 85 symbol word;
+#X msg 258 60 word;
+#X connect 12 0 17 0;
+#X connect 12 0 21 0;
+#X connect 12 1 19 0;
+#X connect 12 1 20 0;
+#X connect 12 2 16 0;
+#X connect 12 2 18 0;
+#X connect 13 0 12 0;
+#X connect 14 0 12 0;
+#X connect 15 0 12 0;
+#X connect 22 0 12 0;
+#X connect 33 0 12 0;
+#X connect 49 0 52 0;
+#X connect 49 1 51 0;
+#X connect 50 0 49 0;
+#X connect 53 0 50 0;
+#X connect 54 0 49 0;
+#X connect 56 0 50 0;
+#X connect 57 0 49 0;