Currently repayWithCollateral is done trough uniswap v2 pools with a very naive onchain routing: protocol-v2/UniswapRepayAdapter.sol at master · aave/protocol-v2 · GitHub
essentially it’s checking which route on uniswap v2 pools is better assetA->assetB
or assetA->WETH->assetB
There’s a pr-proposal for switching to paraswap instead (which will no longer do onchain routing, but use paraswap api) Paraswap Repay Adpter by sameepsi · Pull Request #222 · aave/protocol-v2 · GitHub
Hope that clarifies your question.