The Perl Toolchain Summit needs more sponsors. If your company depends on Perl, please support this very important event.
use strict;
use warnings;
use Test::More tests => 6;

{
    package Animal;
    use Mouse::Role;
    sub eat { 'delicious' }
}

{
    package Cat;
    use Mouse::Role;
    with 'Animal', {
        -alias    => { eat => 'drink' },
        -excludes => [qw(eat)],
    };
    sub eat { 'good!' }
}

{
    package Tama;
    use Mouse;
    with 'Cat';
}

{
    package Dog;
    use Mouse;
    with 'Animal', {
        -alias    => { eat => 'drink' },
    };
}

ok(Dog->can('eat'));
ok(Dog->can('drink'));

my $d = Dog->new();
is($d->drink(), 'delicious');
is($d->eat(),   'delicious');

my $t = Tama->new;
is $t->drink(), 'delicious';
is $t->eat(),    'good!';