$args can be added to the end of the URL, and a single piston can process differently depending on which args are passed.
For example, when I pass args from an external app, I add them to the end of the piston’s URL, like this:
Then my piston can use code like:

Do stuff…
Note: The receiving piston should have no triggers whatsoever.
Once saved, you should see this up top:
This method assumes that all the URLs are the same, but the endings are slightly different.
(IE: the same piston is triggered each time, but the $args changes the path of execution)
For what it’s worth, I know it is human nature to reduce & compartmentalize, but when it comes to coding, oftentimes a longer clean code will process better than a single line of craziness…
IE: If written well with indented conditions, it is usually possible to get less code processing with each execution… and of course, less processing means less lag in our SmartHome.
Just my two cents.