Вы можете использовать скрытое значение формы, чтобы указать, какое это действие.
$form->create('User', array('action' => 'process');
$form->hidden('User.signup', array('value' => '1'));
$form->end('Signup');
$form->create('User', array('action' => 'process');
$form->hidden('User.login', array('value' => '1'));
$form->end('Login');
Не совсем понятно, почему вы не хотите использовать 2 функции. По сути, вам придется вручную проверять, какое это действие, вместо того, чтобы торт сделал это за вас.
В вашем контроллере
function process()
{
if ($this->data['User']['signup'] == 1)
{
// process signup
}
if ($this->data['User']['login'] == 1)
{
// process login
}
}