Resonant and non-resonant soliton scattering by impurities