Build your custom pipelines with components using their default properties and then use runtime bindings for adjusting them for multiple purposes. This will reduce the amount of artifacts you need in your solution and will increase the code re-usage making it easier to test and deploy.
When developing BizTalk applications it is common that developers will create multiple pipelines just for addressing variations in the configuration of pipeline components. BizTalk allows you to change this properties through configuration and that can be imported and exported with bindings. This in some cases can mean hundreds of artifacts that you save from creating and deploying; this will also simplify testing your applications.
A very common example of this is the flat file disassembler where you need to identify the schema to which the flat file being received should be parsed to.