This makes running the pipeline difficult without updating the config. I see the motivation for this, eg to deal with the case where dwi and T1w data are from two different bids datasets, but I actually think that doesn't happen too often in practice -- e.g. it won't happen for raw bids datasets (I know scattr doesn't deal with raw yet), and for preprocessed datasets e.g. snakedwi or others, there would be both T1w and dwi in the derivatives dataset.
So I am thinking the better solution is to place everything in pybids_inputs. Also could set some sensible defaults (the current defaults are pretty specific and almost always would need to be overriden).